# Picker 选择器

# 选择年、月

GestureDetector(
  onTap: () {
    MillPicker.year(context: context, initValue: 2002);
  },
  child: Container(
    color: Colors.transparent,
    padding: EdgeInsets.all(20),
    child: Text('选择年'),
  ),
),
GestureDetector(
  onTap: () {
    MillPicker.month(context: context, initValue: 5);
  },
  child: Container(
    color: Colors.transparent,
    padding: EdgeInsets.all(20),
    child: Text('选择月'),
  ),
),

year

# 日期选择

showMillDatePicker(
  context: context,
  title: '选择日期',
  confirmText: 'ok',
  onConfirm: (newdate) {
    print(newdate);
  });

year

# Attributes

字段名称 说明 类型 默认值
backgroundColor 背景色 Color Color(0xffffffff)
minYear 最小年份 int 1900
maxYear 最大年份 int 2100
defaultYear 默认年 int 默认第一个
defaultMonth 默认月 int 默认第一个
defaultDay 默认日 int 默认第一个
title 标题 String
cancelText 取消按钮文字 String 取消
confirmText 确认按钮文字 String 确定
onCancel 取消回调 Function
onConfirm 确定回调 Function
confirmTextStyle 确定按钮样式 TextStyle TextStyle(

color:  Color(0xff1578ff),  fontSize: 15, ) | | cancelTextStyle | 取消按钮文字 | TextStyle | TextStyle( color: Color(0xff1578ff), fontSize: 15, ) | | titleTextStyle | 标题文字样式 | TextStyle | TextStyle( color: Color(0xff343434), fontSize: 18, ) |

# 自定义单选

MillPicker.pick(
  context: context,
  title: '选择类型',
  confirmText: '选择',
  list: single,
  onConfirm: (val) {
    setState(() {
      singleValue = val['value'];
    });
  },
  initValue: [0],
);

List single = [
  {
    'label': '苹果',
    'value': 0,
  },
  {
    'label': '梨',
    'value': 1,
  },
  {
    'label': '桃子',
    'value': 2,
  },
  {
    'label': '西瓜',
    'value': 3,
  },
]

picker

# 多选

GestureDetector(
  onTap: () {
    MillPicker.pick(
      context: context,
      title: '选择类型',
      confirmText: '选择',
      list: mul1,
      onConfirm: (val) {
        setState(() {
          mul2Value = val;
        });
      },
      initValue: [4, 31, 313],
    );
  },
  child: Container(
    color: Colors.transparent,
    padding: EdgeInsets.all(20),
    child: Text(mul2Txt == null || mul2Txt == '' ? '多项选择' : mul2Txt),
  ),
)
  
List mul1 = [
  {
    'label': '山东',
    'value': 4,
    'children': [
      {
        'label': '济南',
        'value': 31,
        'children': [
          {
            'label': '槐荫',
            'value': 311,
          },
          {
            'label': '市中区',
            'value': 313,
          },
          {
            'label': '历下区',
            'value': 314,
          }
        ],
      },
      {
        'label': '青岛',
        'value': 32,
        'children': [
          {
            'label': '崂山',
            'value': 329,
          },
          {
            'label': '市中区',
            'value': 323,
          },
          {
            'label': '仓宁',
            'value': 324,
          }
        ],
      },
      {
        'label': '潍坊',
        'value': 33,
        'children': [
          {
            'label': '诸城市',
            'value': 311,
          },
          {
            'label': '市中区',
            'value': 313,
          },
          {
            'label': '外城区',
            'value': 314,
          }
        ],
      },
      {
        'label': '临沂',
        'value': 34,
        'children': [
          {
            'label': '兰山区',
            'value': 341,
          },
          {
            'label': '费县',
            'value': 343,
          },
          {
            'label': '河东区',
            'value': 344,
          },
          {
            'label': '罗庄',
            'value': 345,
          }
        ],
      }
    ],
  }
];

picker

list 是一个树状结构的 List。children 是其子树,只要有 chiildren 会向下一级渲染。 account 是最大层级数。 initValue 是默认选项,是一个 List, 如果设置 initValue 那么会根据 initValue 的长度计算选择的层级。 account 和 initValue 至少要设置一项。

# Attributes

字段名称 说明 类型 默认值
backgroundColor 背景色 Color Color(0xffffffff)
initValue 默认值 List<dynamic>
list 选项 List(树状结构)
title 标题 String
cancelText 取消按钮文字 String 取消
confirmText 确认按钮文字 String 确定
onCancel 取消回调 Function
onConfirm 确定回调 Function
account 层级 int
confirmTextStyle 确定按钮样式 TextStyle TextStyle(

color:  Color(0xff1578ff),  fontSize: 15, ) | | cancelTextStyle | 取消按钮文字 | TextStyle | TextStyle( color: Color(0xff1578ff), fontSize: 15, ) | | titleTextStyle | 标题文字样式 | TextStyle | TextStyle( color: Color(0xff343434), fontSize: 18, ) |